﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Регл)
	///</summary>
	[DataContract]
	public enum ГодностьКВоеннойСлужбе
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"a28190a4-ccf1-4b96-952c-181d2d781177\", \"Представление\":\"Годен\"}")]
		Годен = 0,//А - годен к военной службе
		[EnumMember(Value = "{\"Ссылка\":\"4b52491a-6276-4373-9fb7-c0e7429d4ca0\", \"Представление\":\"ГоденСОграничениями\"}")]
		ГоденСОграничениями = 1,//Б - годен к военной службе с незначительными ограничениями
		[EnumMember(Value = "{\"Ссылка\":\"f269efe7-2d6f-408d-b140-5c949f823824\", \"Представление\":\"ОграниченноГоден\"}")]
		ОграниченноГоден = 2,//В - ограниченно годен к военной службе
		[EnumMember(Value = "{\"Ссылка\":\"8925a34d-6695-4870-a325-e98f2659e6e4\", \"Представление\":\"ВременноНеГоден\"}")]
		ВременноНеГоден = 3,//Г - временно не годен к военной службе
		[EnumMember(Value = "{\"Ссылка\":\"108be8c2-70d0-4bcc-931a-ca14727aee00\", \"Представление\":\"НеГоден\"}")]
		НеГоден = 4,//Д - не годен к военной службе
	}
	public static partial class ГодностьКВоеннойСлужбе_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Годен = new Guid("1d182c95-782d-7711-4b96-ccf1a28190a4");//А - годен к военной службе
		public static readonly Guid ГоденСОграничениями = new Guid("e7c0b79f-9d42-a04c-4373-62764b52491a");//Б - годен к военной службе с незначительными ограничениями
		public static readonly Guid ОграниченноГоден = new Guid("945c40b1-829f-2438-408d-2d6ff269efe7");//В - ограниченно годен к военной службе
		public static readonly Guid ВременноНеГоден = new Guid("8fe925a3-5926-e4e6-4870-66958925a34d");//Г - временно не годен к военной службе
		public static readonly Guid НеГоден = new Guid("14ca1a93-7a72-00ee-4bcc-70d0108be8c2");//Д - не годен к военной службе
		public static ГодностьКВоеннойСлужбе Получить(this ГодностьКВоеннойСлужбе Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ГодностьКВоеннойСлужбе Получить(this ГодностьКВоеннойСлужбе Значение, Guid Ссылка)
		{
			if(Ссылка == Годен)
			{
				return ГодностьКВоеннойСлужбе.Годен;
			}
			else if(Ссылка == ГоденСОграничениями)
			{
				return ГодностьКВоеннойСлужбе.ГоденСОграничениями;
			}
			else if(Ссылка == ОграниченноГоден)
			{
				return ГодностьКВоеннойСлужбе.ОграниченноГоден;
			}
			else if(Ссылка == ВременноНеГоден)
			{
				return ГодностьКВоеннойСлужбе.ВременноНеГоден;
			}
			else if(Ссылка == НеГоден)
			{
				return ГодностьКВоеннойСлужбе.НеГоден;
			}
			return ГодностьКВоеннойСлужбе.ПустаяСсылка;
		}
		public static byte[] Ключ(this ГодностьКВоеннойСлужбе Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ГодностьКВоеннойСлужбе Значение)
		{
			switch (Значение)
			{
				case ГодностьКВоеннойСлужбе.Годен: return Годен;
				case ГодностьКВоеннойСлужбе.ГоденСОграничениями: return ГоденСОграничениями;
				case ГодностьКВоеннойСлужбе.ОграниченноГоден: return ОграниченноГоден;
				case ГодностьКВоеннойСлужбе.ВременноНеГоден: return ВременноНеГоден;
				case ГодностьКВоеннойСлужбе.НеГоден: return НеГоден;
			}
			return Guid.Empty;
		}
	}
}